package com.coffee.admin.api.platform.service;

import com.coffee.admin.api.platform.query.RechargeQuery;
import com.coffee.admin.api.platform.result.RechargeRuleResult;
import com.coffee.core.entity.Page;
import com.coffee.core.entity.PagerInfo;
import com.coffee.core.exception.BusinessException;

import java.util.List;

public interface RechargeRuleService {
    /**
     * 新增充值规则
     * @param rule 充值规则实体
     * @return 插入后的主键ID
     */
    Integer saveRechargeRule(RechargeQuery rule) throws BusinessException;;

    /**
     * 更新充值规则
     * @param rule 充值规则实体
     * @return 是否更新成功
     */
    boolean updateRechargeRule(RechargeQuery rule)throws BusinessException;

    /**
     * 删除充值规则
     * @param id 规则ID
     * @return 是否删除成功
     */
    boolean deleteRechargeRule(Integer id);

    /**
     * 根据ID查询规则
     * @param id 规则ID
     * @return 充值规则实体
     */
    RechargeRuleResult getById(Integer id);

    /**
     * 查询所有有效规则
     * @return 规则列表（按创建时间倒序）
     */
    Page<RechargeRuleResult> listAllRules(PagerInfo pagerInfo);

    /**
     * 根据充值金额匹配适用规则
     * @param amount 用户充值金额
     * @return 匹配的规则（可空）
     */
    RechargeRuleResult matchRule(Double amount);
}
